#ifndef VERSION_H
#define VERSION_H
#include <stdint.h>


/**
 * 版本号格式说明：
 * 
 * V{主版本}.{子版本}.{修订版本}.{硬件版本}_{开发阶段}
 * 
 * 各字段含义：
 * - 主版本 (MAJOR): 功能模块/架构重大变更时递增 (1 → 2)
 * - 子版本 (MINOR): 新增功能模块时递增 (1.2 → 1.3)
 * - 修订版本 (PATCH): Bug修复时递增 (1.2.3 → 1.2.4)
 * - 硬件版本 (REVISION): 三位数字标识硬件兼容性 (001/002)
 * - 开发阶段 (STAGE): Base|Alpha|Beta|rc|Release
 */

// 定义uint8类型为标准uint8_t类型
typedef uint8_t uint8;

// 软件版本号定义（默认值）
#ifndef SWP_VERSION
#define SWP_VERSION "1.0.0.0_Base"
#endif


// 布尔值定义：真
#ifndef TRUE
#define TRUE 1
#endif

// 布尔值定义：假
#ifndef FALSE
#define FALSE 0
#endif

// 日期信息结构体
// 用于存储年、月、日信息，每个字段都是字符数组
typedef struct{
    uint8 year[4];    // 年份（4位数字）
    uint8 month[2];   // 月份（2位数字）
    uint8 day[2];     // 日期（2位数字）
} Date_InfoType;

/* Example: 10:41:52 */
// 时间信息结构体
// 用于存储时、分、秒信息
typedef struct{
    uint8 time[8];    // 时间（HH:MM:SS格式）
} Time_InfoType;

/* Example: SWP02.30.00 */
// 应用程序版本信息结构体
typedef struct{
    uint8 version[16];    // 版本字符串
} AppVersion_InfoType;




// 获取构建日期函数声明
extern uint8 Vpu_GetBuildDate(Date_InfoType *date);

// 获取构建时间函数声明
extern uint8 Vpu_GetBuildTime(Time_InfoType *time);

// 获取应用程序版本函数声明
extern uint8 Vpu_GetAppVersion(AppVersion_InfoType *appversion);





#endif /* VERSION_H */